package Yatzee;

import Yatzee.Gui.MyJTextField;

public class SpielLogik {
	String feld;
	Wuerfel[] wuerfel = new Wuerfel[5];
	int yatzee;
	
	public String feldWahl(String feld, Wuerfel[] wuerfel) {
		this.feld = feld;
		this.wuerfel = wuerfel;
		int x = 0;
		int zahl = 0;
		switch(feld) {
			case "einer":
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 1)
						x += 1;
				}
				zahl = x;
				if(x > 4)
					if(yatzee > 0)
						yatzee += 1;
				break;
			case "zweier":
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 2)
						x += 2;
				}
				zahl = x;
				if(x > 8)
					if(yatzee > 0)
						yatzee += 1;
				break;
			case "dreier":
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 3)
						x += 3;
				}
				zahl = x;
				if(x > 12)
					if(yatzee > 0)
						yatzee += 1;
				break;
			case "vierer":
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 4)
						x += 4;
				}
				zahl = x;
				if(x > 16)
					if(yatzee > 0)
						yatzee += 1;
				break;
			case "fuenfer":
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 5)
						x += 5;
				}
				zahl = x;
				if(x > 20)
					if(yatzee > 0)
						yatzee += 1;
				break;
			case "sechser":
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 6)
						x += 6;
				}
				zahl = x;
				if(x > 24)
					if(yatzee > 0)
						yatzee += 1;
				break;
			case "dreierpasch":
				for(int i = 0; i < 5; i++) {
					int wzahl = wuerfel[i].gibWert();
					int anzahl = 0;
					int zzahl = 0;
					for(int ii = 0; ii < 5; ii++) {
						if (wzahl == wuerfel[ii].gibWert())
							anzahl++;
						else
							zzahl += wuerfel[ii].gibWert();
						if (anzahl > 2)
							zahl = anzahl * wzahl + zzahl;
					}
				}
				if(yatzee > 1) {
					for(int i = 0; i < 5; i++) {
						int wzahl = wuerfel[i].gibWert();
						int anzahl = 0;
						for(int ii = 0; ii < 5; ii++) {
							if (wzahl == wuerfel[ii].gibWert())
								anzahl++;
							if (anzahl > 4)
								zahl = 25;
						}
					}
				}
				break;
			case "viererpasch":
				for(int i = 0; i < 5; i++) {
					int wzahl = wuerfel[i].gibWert();
					int anzahl = 0;
					int zzahl = 0;
					for(int ii = 0; ii < 5; ii++) {
						if (wzahl == wuerfel[ii].gibWert())
							anzahl++;
						else
							zzahl += wuerfel[ii].gibWert();
						if (anzahl > 3)
							zahl = anzahl * wzahl + zzahl;
					}
				}
				if(yatzee > 1) {
					for(int i = 0; i < 5; i++) {
						int wzahl = wuerfel[i].gibWert();
						int anzahl = 0;
						for(int ii = 0; ii < 5; ii++) {
							if (wzahl == wuerfel[ii].gibWert())
								anzahl++;
							if (anzahl > 4)
								zahl = 25;
						}
					}
				}
				break;
			case "fullhouse":
				int anzahl1 = 0;
				int anzahl2 = 0;
				for(int i = 0; i < 5; i++) {
					int wzahl = wuerfel[i].gibWert();
					int anzahl = 0;
					for(int ii = 0; ii < 5; ii++) {
						if (wzahl == wuerfel[ii].gibWert())
							anzahl++;
						
						if (anzahl > 2) {
							anzahl1++;
						}
						else if (anzahl > 1)
							anzahl2++;
					}
				}
				if (anzahl1 > 2)
					if (anzahl2 > 4)
						zahl = 25;
				if(yatzee > 1) {
					for(int i = 0; i < 5; i++) {
						int wzahl = wuerfel[i].gibWert();
						int anzahl = 0;
						for(int ii = 0; ii < 5; ii++) {
							if (wzahl == wuerfel[ii].gibWert())
								anzahl++;
							if (anzahl > 4)
								zahl = 25;
						}
					}
				}
				break;
			case "klstrasse":
				boolean w1 = false;
				boolean w2 = false;
				boolean w3 = false;
				boolean w4 = false;
				boolean w5 = false;
				boolean w6= false;
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 1)
						w1 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 2)
						w2 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 3)
						w3 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 4)
						w4 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 5)
						w5 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 6)
						w6 = true;
				}
				if(w1) {
					if(w2)
						if(w3)
							if(w4)
								zahl = 30;
				}
				else if(w2) {
					if(w3)
						if(w4)
							if(w5)
								zahl = 30;
				}
				else if (w3)
					if(w4)
						if(w5)
							if(w6)
								zahl = 30;
				if(yatzee > 1) {
					for(int i = 0; i < 5; i++) {
						int wzahl = wuerfel[i].gibWert();
						int anzahl = 0;
						for(int ii = 0; ii < 5; ii++) {
							if (wzahl == wuerfel[ii].gibWert())
								anzahl++;
							if (anzahl > 4)
								zahl = 30;
						}
					}
				}
				break;
			case "grstrasse":
				w1 = false;
				w2 = false;
				w3 = false;
				w4 = false;
				w5 = false;
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 1 || wuerfel[i].gibWert() == 6)
						w1 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 2)
						w2 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 3)
						w3 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 4)
						w4 = true;
				}
				for(int i = 0; i < 5; i++) {
					if(wuerfel[i].gibWert() == 5)
						w5 = true;
				}
				if(w1)
					if(w2)
						if(w3)
							if(w4)
								if(w5)
									zahl = 40;
				if(yatzee > 1) {
					for(int i = 0; i < 5; i++) {
						int wzahl = wuerfel[i].gibWert();
						int anzahl = 0;
						for(int ii = 0; ii < 5; ii++) {
							if (wzahl == wuerfel[ii].gibWert())
								anzahl++;
							if (anzahl > 4)
								zahl = 40;
						}
					}
				}
				break;
			case "chance":
				for(int i = 0; i < 5; i++)
					x += wuerfel[i].gibWert();
				zahl = x;
				if(yatzee > 1) {
					for(int i = 0; i < 5; i++) {
						int wzahl = wuerfel[i].gibWert();
						int anzahl = 0;
						for(int ii = 0; ii < 5; ii++) {
							if (wzahl == wuerfel[ii].gibWert())
								anzahl++;
							if (anzahl > 4)
								zahl = 25;
						}
					}
				}
				break;
			case "yatzee":
				for(int i = 0; i < 5; i++) {
					int wzahl = wuerfel[i].gibWert();
					int anzahl = 0;
					for(int ii = 0; ii < 5; ii++) {
						if (wzahl == wuerfel[ii].gibWert())
							anzahl++;
						if (anzahl > 4)
							zahl = 50;
					}
				}
				break;
		};
		return Integer.toString(zahl);
	}
	
	public int[] aktuallisieren(int[] felder) {
		int summe = felder[0] + felder[1] + felder[2] + felder[3] + felder[4] + felder[5];
		if(summe > 62)
			felder[6] = 35;
		felder[7] = summe + felder[6];
		if(yatzee > 1)
			felder[15] = 100;
		felder[16] = felder[7] + felder[8] + felder[9] + felder[10] + felder[11] + felder[12] + felder[13] + felder[14] + felder[15];
		return felder;
	}
}
